iT邦幫忙

2025 iThome 鐵人賽

DAY 5
1

過去四天裡,像是在打造一條數位工廠的生產線:設定廠房(Day2)、建立原料篩選機制(Day3),到引進核心的 AI加工技術(Day4)。

現在,來到我們的生產線末端,已經源源不斷地產出經過LLM精煉的結構化資料——包含摘要和標籤,而這些東西還靜靜地躺在工廠的傳送帶上,Flutter App(客戶端)還不知道如何來取貨。(原諒我需要一些開場白等的廢話xDD)

今天,我們就要完成這「最後一哩路」的建設:為工廠開設一個提貨窗口,也就是一個Webhook API。這個API 將是連接我們後端與未來漂亮App之間的唯一橋樑。

步驟一:數據的最終整備 —— 用Set節點打造乾淨的API回應

回顧我們的工作流,中間過程產生了許多臨時數據:原始HTML、清理後的純文字、RSS Feed 的所有欄位等等,如果我們把這些東西一股腦地全部回傳給App,不僅會造成數據冗餘,也會增加App端的處理負擔。

好的API,只需回傳客戶端真正需要的、乾淨的數據。這時Set節點就是我們最好的包裝工具。

https://ithelp.ithome.com.tw/upload/images/20250908/201779712BZoYTL2hD.png

n8n實作步驟:

步驟二:從「定時任務」到「即時回應」—— Webhook節點登場

到目前為止,我們的工作流是定時(Cron)節點或手動觸發的,但App需要的是一種「我來要,你就給」的即時互動模式,這也是Webhook節點的核心使命。

所以先將最一開始的trigger節點換成Webhook節點,將Path命名,換個有意義的名字(我設定為:get-inspirations)。

Webhook節點會產生一個獨一無二的URL。當有程式(如我們的App或你的瀏覽器)在任何時候訪問這個URL,整個n8n工作流就會被觸發且執行,並將最後一個節點的結果回傳給訪問者。

n8n Webhook給的URL有分Test& Produciton:

(1)Test測試用:(只在你按下Execute workflow後,再被呼叫有效)
https://<你的主機>/webhook-test/get-inspirations

(2)Produciton正式用:(把workflow切成Active後,隨時可打)
https://<你的主機>/webhook/get-inspirations

https://ithelp.ithome.com.tw/upload/images/20250908/20177971HRK6ksgTFD.png

步驟三:驗收成果 —— 用Postman測試你的第一個API

Postman是一個App模擬工具,可以對前面的工作流進行呼叫測試,確保它能如預期般回傳我們精心準備的JSON數據。雖然可以直接用瀏覽器,但使用專業的API測試工具Postman能讓我們看到更完整的資訊。

先將n8n進入監聽狀態,在Webhook節點的視窗中,點擊右下角的Listen for Test Event按鈕,n8n會開始等待,準備接收來自測試URL的請求。

使用瀏覽器或Postman發出請求,我將使用Test URL進行測試。將請求方法設為 GET,在Postman貼上複製的Test URL後並發出請求。

檢視結果:
  • 在n8n這端:會看到 Webhook 節點出現了一個綠色的勾,表示它已成功接收到請求。你可以點開節點,查看請求的詳細資訊~整個工作流會被觸發到執行完成。

  • 在Postman這端:請求完成後,下方的Body區塊會顯示從n8n回傳的結果。如果一切正常,這裡顯示的就應該是我們在Set節點中打包設定好的JSON數據,同時,狀態碼應該是200OK,這樣就算接成功啦!

https://ithelp.ithome.com.tw/upload/images/20250908/20177971O3ifXiPaLs.png

明日預告:打開Flutter大門,穿上好看的使用者介面

今天完成了後端建設的最後一塊,不建立了一個自動化流程,更是看到了成果,透過一個標準、穩定的Webhook API暴露給了外部世界。我們的數位工廠,算是上工了!我後面會再慢慢的,邊優化細節邊回來改前面的文章。

明天開始要使用Flutter,建立其專案初始化與架構規劃~Day6 見!


【哈囉你好:)感謝你的閱讀!其他我會常出沒的地方:Threads


上一篇
30 天做一個極簡App:初探 LLM,讓工作流自動產出「摘要+標籤」
下一篇
30 天做一個極簡App:Flutter 專案初始化與架構規劃
系列文
Mobile Dev|日更靈感來源 App:Flutter × LLM × n8n,每天只推 3 則!23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言